MAYBE We are left with following problem, upon which TcT provides the certificate MAYBE. Strict Trs: { *(@x, @y) -> #mult(@x, @y) , +(@x, @y) -> #add(@x, @y) , appendreverse(@toreverse, @sofar) -> appendreverse#1(@toreverse, @sofar) , appendreverse#1(::(@a, @as), @sofar) -> appendreverse(@as, ::(@a, @sofar)) , appendreverse#1(nil(), @sofar) -> @sofar , bftMult(@t, @acc) -> bftMult'(tuple#2(::(@t, nil()), nil()), @acc) , bftMult'(@queue, @acc) -> bftMult'#1(bftMult'#2(@queue), @acc) , bftMult'#2(tuple#2(@dequeue@1, @dequeue@2)) -> dequeue(@dequeue@1, @dequeue@2) , bftMult'#1(tuple#2(@elem, @queue), @acc) -> bftMult'#3(@elem, @acc, @queue) , bftMult'#3(::(@t, @_@3), @acc, @queue) -> bftMult'#4(@t, @acc, @queue) , bftMult'#3(nil(), @acc, @queue) -> @acc , dequeue(@outq, @inq) -> dequeue#1(@outq, @inq) , bftMult'#4(leaf(), @acc, @queue) -> bftMult'(@queue, @acc) , bftMult'#4(node(@y, @t1, @t2), @acc, @queue) -> bftMult'#5(enqueue(@t2, enqueue(@t1, @queue)), @acc, @y) , enqueue(@t, @queue) -> enqueue#1(@queue, @t) , bftMult'#5(@queue', @acc, @y) -> bftMult'(@queue', matrixMult(@acc, @y)) , matrixMult(@m1, @m2) -> matrixMult#1(@m1, @m2) , computeLine(@line, @m, @acc) -> computeLine#1(@line, @acc, @m) , computeLine#1(::(@x, @xs), @acc, @m) -> computeLine#2(@m, @acc, @x, @xs) , computeLine#1(nil(), @acc, @m) -> @acc , computeLine#2(::(@l, @ls), @acc, @x, @xs) -> computeLine(@xs, @ls, lineMult(@x, @l, @acc)) , computeLine#2(nil(), @acc, @x, @xs) -> nil() , lineMult(@n, @l1, @l2) -> lineMult#1(@l1, @l2, @n) , dequeue#1(::(@t, @ts), @inq) -> tuple#2(::(@t, nil()), tuple#2(@ts, @inq)) , dequeue#1(nil(), @inq) -> dequeue#2(reverse(@inq)) , reverse(@xs) -> appendreverse(@xs, nil()) , dequeue#2(::(@t, @ts)) -> tuple#2(::(@t, nil()), tuple#2(@ts, nil())) , dequeue#2(nil()) -> tuple#2(nil(), tuple#2(nil(), nil())) , enqueue#1(tuple#2(@outq, @inq), @t) -> tuple#2(@outq, ::(@t, @inq)) , lineMult#1(::(@x, @xs), @l2, @n) -> lineMult#2(@l2, @n, @x, @xs) , lineMult#1(nil(), @l2, @n) -> nil() , lineMult#2(::(@y, @ys), @n, @x, @xs) -> ::(+(*(@x, @n), @y), lineMult(@n, @xs, @ys)) , lineMult#2(nil(), @n, @x, @xs) -> ::(*(@x, @n), lineMult(@n, @xs, nil())) , matrixMult#1(::(@l, @ls), @m2) -> ::(computeLine(@l, @m2, nil()), matrixMult(@ls, @m2)) , matrixMult#1(nil(), @m2) -> nil() } Weak Trs: { #mult(#0(), #0()) -> #0() , #mult(#0(), #neg(@y)) -> #0() , #mult(#0(), #pos(@y)) -> #0() , #mult(#neg(@x), #0()) -> #0() , #mult(#neg(@x), #neg(@y)) -> #pos(#natmult(@x, @y)) , #mult(#neg(@x), #pos(@y)) -> #neg(#natmult(@x, @y)) , #mult(#pos(@x), #0()) -> #0() , #mult(#pos(@x), #neg(@y)) -> #neg(#natmult(@x, @y)) , #mult(#pos(@x), #pos(@y)) -> #pos(#natmult(@x, @y)) , #add(#0(), @y) -> @y , #add(#neg(#s(#0())), @y) -> #pred(@y) , #add(#neg(#s(#s(@x))), @y) -> #pred(#add(#pos(#s(@x)), @y)) , #add(#pos(#s(#0())), @y) -> #succ(@y) , #add(#pos(#s(#s(@x))), @y) -> #succ(#add(#pos(#s(@x)), @y)) , #pred(#0()) -> #neg(#s(#0())) , #pred(#neg(#s(@x))) -> #neg(#s(#s(@x))) , #pred(#pos(#s(#0()))) -> #0() , #pred(#pos(#s(#s(@x)))) -> #pos(#s(@x)) , #succ(#0()) -> #pos(#s(#0())) , #succ(#neg(#s(#0()))) -> #0() , #succ(#neg(#s(#s(@x)))) -> #neg(#s(@x)) , #succ(#pos(#s(@x))) -> #pos(#s(#s(@x))) , #natmult(#0(), @y) -> #0() , #natmult(#s(@x), @y) -> #natadd(@y, #natmult(@x, @y)) , #natadd(#0(), @y) -> @y , #natadd(#s(@x), @y) -> #s(#natadd(@x, @y)) } Obligation: innermost runtime complexity Answer: MAYBE None of the processors succeeded. Details of failed attempt(s): ----------------------------- 1) 'Fastest' failed due to the following reason: None of the processors succeeded. Details of failed attempt(s): ----------------------------- 1) 'matrix interpretation of dimension 4' failed due to the following reason: Following exception was raised: stack overflow 2) 'matrix interpretation of dimension 3' failed due to the following reason: The input cannot be shown compatible 3) 'matrix interpretation of dimension 3' failed due to the following reason: The input cannot be shown compatible 4) 'matrix interpretation of dimension 2' failed due to the following reason: The input cannot be shown compatible 5) 'matrix interpretation of dimension 2' failed due to the following reason: The input cannot be shown compatible 6) 'matrix interpretation of dimension 1' failed due to the following reason: The input cannot be shown compatible 2) 'Fastest' failed due to the following reason: None of the processors succeeded. Details of failed attempt(s): ----------------------------- 1) 'custom shape polynomial interpretation' failed due to the following reason: Following exception was raised: stack overflow 2) 'custom shape polynomial interpretation' failed due to the following reason: The input cannot be shown compatible 3) 'linear polynomial interpretation' failed due to the following reason: The input cannot be shown compatible Arrrr..